package com.hifar.test.oaApi.common;

import java.util.EnumMap;

public enum ErrorType {

	// 客户端错误4+类authentication
	CLIENT_BAD_REQUEST, CLIENT_AUTHENTICATION_FAILED, CLIENT_FORBIDDEN_REQUEST, CLIENT_NOT_FIND, CLIENT_BAD_METHOD, CLIENT_TIMEOUT,

	// 服务器错误 5+类
	SERVER_INTERNAL_ERROR, SERVER_ENGINE_ERROR, SERVER_TRANSFER_ERROR, SERVER_APPCONTAINER_ERROR, SERVER_APPSTORE_ERROR, SERVER_BPMN_ERROR, SERVER_NODE_NO_ACTIVE, SERVER_CLUSTER_NODE_NO_ACTIVE,
	// 服务可用性相关的7+类

	// 配额受限的8+类
	QUOTA_LIMIT;

	private static EnumMap<ErrorType, String> errorCodeMap = new EnumMap<ErrorType, String>(ErrorType.class);

	static {
		// 客户端类
		errorCodeMap.put(ErrorType.CLIENT_BAD_REQUEST, "400");// 错误的参数请求
		errorCodeMap.put(ErrorType.CLIENT_AUTHENTICATION_FAILED, "401");// 错误的参数请求
		errorCodeMap.put(ErrorType.CLIENT_FORBIDDEN_REQUEST, "403");// 访问被拒绝，当用户试图访问不属于自己的资源，或者对于提交的操作没有权限，或者试图更改的资源处于不可更改的状态时等，会返回该错误。
		errorCodeMap.put(ErrorType.CLIENT_NOT_FIND, "404");// 当用户试图访问不存在的资源时，会返回该错误
		errorCodeMap.put(ErrorType.CLIENT_BAD_METHOD, "405");// MethodNotAllowed
		// 当用户提交的 time_stamp参数时间过期(超过60秒)时会返回该错误
		errorCodeMap.put(ErrorType.CLIENT_TIMEOUT, "408");

		// 服务端类
		errorCodeMap.put(ErrorType.SERVER_INTERNAL_ERROR, "500");// 内部错误
		errorCodeMap.put(ErrorType.SERVER_ENGINE_ERROR, "520");// 引擎错误
		errorCodeMap.put(ErrorType.SERVER_TRANSFER_ERROR, "521");// 传输转换错误
		errorCodeMap.put(ErrorType.SERVER_APPCONTAINER_ERROR, "530");// 应用容器错误
		errorCodeMap.put(ErrorType.SERVER_APPSTORE_ERROR, "540");// 应用商店错误
		errorCodeMap.put(ErrorType.SERVER_BPMN_ERROR, "550");// 业务错误
		errorCodeMap.put(ErrorType.SERVER_NODE_NO_ACTIVE, "590");// 服务节点不可用
		errorCodeMap.put(ErrorType.SERVER_CLUSTER_NODE_NO_ACTIVE, "592");// 集群节点不可用

		// 配额类
		errorCodeMap.put(ErrorType.QUOTA_LIMIT, "800");// 许可配额限制
	}

	public String value() {
		return errorCodeMap.get(this);
	}

}
